<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<script src="./jquery.js"></script>
<script>
  // let a = new Promise((resolve, reject) => {
  //   resolve('成功了')
  //   // reject('失败了')
  // })
  // a.then(res => {
  //   console.log(res)
  // }).catch(err => {
  //   console.log(err)
  // }).finally(() => {
  //   console.log('无论成功失败都执行')
  // })
  // a.then(res => {
  //   console.log(res)
  // }).catch(err => {
  //   console.log(err)
  // }).finally(() => {
  //   console.log('成功失败都执行')
  // })
  /**
   * ajax请求
   * /
  // $.ajax({
  //   url: 'data/1.json',
  //   success: function (res) {
  //     console.log(res)
  //   },
  //   error: function (err) {
  //     console.log(err)
  //   }
  // })

  /**
   * 用promise封装ajax请求
   */
  // let a = new Promise((resolve, reject) => {
  //   $.ajax({
  //     url: "data/2.json",
  //     success: function (res) {
  //       resolve(res)
  //     },
  //     error: function (err) {
  //       reject(err)
  //     }
  //   })
  // })
  // /**
  //  * 调用
  //  */
  // a.then(res => {
  //   console.log(res)
  // }).catch(err => {
  //   console.log(err)
  // })


  /**
   * promise可把异步的执行改成同步。把请求成功的数据，通过回调函数拿到外面执行
   */
  // var a = new Promise((resolve, reject) => {
  //   $.ajax({
  //     url: 'data/3.json',
  //     success: function (res) {
  //       resolve(res)
  //     },
  //     error: function (err) {
  //       reject(err)
  //     }
  //   })
  // })
  // a.then(res => {
  //   console.log(res)
  // }).catch(err => {
  //   console.log(err)
  // })


  /**
   *封装Promise接口
   */
  // function url1 (url) {
  //   return new Promise((resolve, reject) => {
  //     $.ajax({
  //       url: url,
  //       success: function (res) {
  //         resolve(res)
  //       },
  //       error: function (err) {
  //         reject(err)
  //       }
  //     })
  //   })
  // }
  // var a1 = url1('data/1.json')
  // a1.then(res => {
  //   console.log(res)
  // }).catch(err => {
  //   console.log(err)
  // })

  /**
   * 解决地狱回调问题
   */

  function getajax (url) {
    return new Promise((resolve, reject) => {
      $.ajax({
        url: url,
        success: function (res) {
          resolve(res)
        },
        error: function (err) {
          reject(err)
        }
      })
    })
  }
  var a1 = getajax('data/1.json')
  var a2 = getajax('data/2.json')
  a1.then(res => {
    console.log(131, res)
    let data = JSON.parse(res)
    data.push('我是新添加的')
    if (data) {
      a2.then(res1 => {
        console.log(135, res1)
      })
    }
  }).catch(err => {
    console.log(err)
  })
</script>

<body>

</body>

</html>